package com.wf.config;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import com.wf.properties.WechatProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 微信小程序配置类，用于配置微信小程序服务
 * @author mpk
 */
@Configuration
// 启用配置属性，允许在配置文件中读取微信相关属性
@EnableConfigurationProperties(WechatProperties.class)
public class WxMpConfiguration {

    /**
     * 创建微信小程序服务对象，用于处理微信小程序相关请求
     * @param wechatProperties 微信配置属性对象
     * @return
     */
    @Bean
    public WxMaService wxMaService(WechatProperties wechatProperties) {
        // 创建微信小程序配置对象
        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
        // 设置小程序的AppID，从配置文件中读取
        config.setAppid(wechatProperties.getMpAppId());
        // 设置小程序的AppSecret，从配置文件中读取
        config.setSecret(wechatProperties.getMpAppSecret());
        // 设置消息数据格式，从配置文件中读取
        config.setMsgDataFormat(wechatProperties.getMsgDataFormat());
        // 创建微信小程序服务实现对象
        WxMaService service = new WxMaServiceImpl();
        // 设置微信小程序配置
        service.setWxMaConfig(config);
        // 返回微信小程序服务对象
        return service;
    }

}
